package com.example.aidocengine.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.aidocengine.pojo.entity.DeviceInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface DeviceInfoMapper extends BaseMapper<DeviceInfo> {
    
    /**
     * 根据设备双编查找设备信息
     */
    DeviceInfo selectByDeviceDoubleCode(@Param("deviceDoubleCode") String deviceDoubleCode);
    
    /**
     * 根据站点名称查找设备列表
     */
    List<DeviceInfo> selectByStationName(@Param("stationName") String stationName);
    
    /**
     * 根据设备分类查找设备列表
     */
    List<DeviceInfo> selectByDeviceCategory(@Param("deviceCategory") String deviceCategory);

    /**
     * 按设备双编并结合上下文（可选的厂站名/电压等级）精确匹配设备
     */
    DeviceInfo selectByDoubleCodeWithContext(@Param("deviceDoubleCode") String deviceDoubleCode,
                                             @Param("stationName") String stationName,
                                             @Param("voltageLevel") String voltageLevel);
    
    /**
     * 批量插入设备信息
     */
    int insertBatch(@Param("deviceList") List<DeviceInfo> deviceList);
    
    /**
     * 批量更新设备信息
     */
    int updateBatch(@Param("deviceList") List<DeviceInfo> deviceList);

    /**
     * 删除所有设备信息
     */
    void deleteAll();
}
